package ch13;

public abstract class Option {
	private int userID; // indicates user involved
	private int customerID; // indicates the customers ID
	private int adminID; // indicates admin ID
	protected Screen screen; // ATM's screen
	private BankDatabase bankDatabase; // account info database

	// Transaction constructor invoked by subclasses using super()
	public Option(int theUserID, Screen atmScreen, BankDatabase atmBankDatabase) {
		userID = theUserID;
		screen = atmScreen;
		bankDatabase = atmBankDatabase;
	} // end Transaction constructor

	// return account number
	public int getUserID() {
		return userID;
	} // end method getAccountNumber

	// return reference to screen
	public Screen getScreen() {
		return screen;
	} // end method getScreen

	// return reference to bank database
	public BankDatabase getBankDatabase() {
		return bankDatabase;
	} // end method getBankDatabase

	// perform the transaction (overridden by each subclass)
	// abstract public void execute();
	public void execute() {
	}

	public int getCustomerID() {
		return customerID;
	}

	public void setCustomerID(int customerID) {
		this.customerID = customerID;
	}

	public int getAdminID() {
		return adminID;
	}

	public void setAdminID(int adminID) {
		this.adminID = adminID;
	}
} // end class Option
